package cn.gzsf.sboot10.controller;


import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

@RestController
public class UploadController {
    @RequestMapping("/upload")    //文件上传，使用MultipartFile类型接收
                                     //picFile要和文件上传组件的中的name属性一致
    public String upload(MultipartFile picFile) throws IOException {
        //获取图片的原始名称
        String fileName = picFile.getOriginalFilename();
        //System.out.println(fileName);   //111.22.png
        //得到文件的后缀      fileName.lastIndexOf(".")：获取字符串最后一个点的下标
                                    //.substring(int index):从指定下标开始截取子串
        String suffix = fileName.substring(fileName.lastIndexOf("."));
        //得到唯一文件名
        fileName = UUID.randomUUID()+suffix;
        System.out.println(fileName);
        String dirPath = "d:/files";   //   d:/files/2025/04/07
        //准备一个和日期相关的路径，/2025/04/07
        SimpleDateFormat sdf = new SimpleDateFormat("/yyyy/MM/dd/");
        //new Date()得到的是当前系统时间
        String datePath = sdf.format(new Date());
        System.out.println(datePath);
        File dirFile = new File(dirPath+datePath);
        //判断如果文件不存在，则创建
        if(!dirFile.exists()){
            dirFile.mkdirs();
        }
        //将接收到的文件保存到上面的文件夹里面   d:/files/2025/04/07/xxxxx.png
        //picFile.transferTo(new File(dirFile+fileName));
        picFile.transferTo(new File(dirPath+datePath+fileName));
        System.out.println(dirFile+fileName);
        //   /2025/04/07/xxxxx.png,响应给前端
        return datePath+fileName;
    }

    @RequestMapping("/remove")
    public void removeFile(String url){
        System.out.println("url = " + url);
        File file = new File("d:/files"+url);
        file.delete();
    }
}
